#include<iostream>
using namespace std;
int a[1000050];
int q[1000200];
int main()
{
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int head=0,tail=0;
   for(int i=1;i<=n;i++){
    while(q[head]+k<=i&&head<tail){
        head++;//方块移动
   }
    while(head<tail&&a[q[tail-1]]<a[i])tail--;
    q[tail]=i;
    tail++;
    if(i>=k)cout<<a[q[head]]<<endl;
   }
    return 0;
} 

